Dependiendo de cuanto se mueve la salida del conversor A/D va a depender que usas.
Si por ejemplo cambia solo los ultimos bits, podrias "promediar" varios valores (generalmente en potencia de 2 para dividirlo mas facil, ya que es rotar).
Si la variacion es MUY grande, entonces vas a tener que mejorar la parte de entrada del potenciometro, tal ves un pequeño capacitor en paralelo a lo que deseas medir. O seguramente la resistencia esta limitando la resistencia podria estar limitando la corriente que pasa al ADC.
La otra es crear una pequeña conversion, el ADC da 1024 valores, supongamos que te limitas a 180º y tu motor paso a paso da pasos de 1.8º, esto quiere decir que son exactamente 100 pasos... Entonces creamos una "funcion" que me transforme el ADC en la cantidad de pasos a dar, desde un 0. Esto quiere decir que cada cambio de 10 del ADC significa 1 paso del motor
Pasos = (uint8_t)(0.09766*ADC);
Obviamente donde pasos sea un entero de 8 bits sin signo. Que va a ir de 0 a 100.
Mientras no cambie el paso, entonces no moves el motor.
Si 10 valores es poco, podes tomar mas muestras y tratar de conseguir 1 bit mas. Por ejemplo tomando 4 muestras, sumandolas y dividiendolo por 2, obtendrias un resultado que es 1 bit mas. Aumentando asi que esa diferencia de 10 ahora sea de 20, y evitando que se cuenten mas pasos en falso.