Un motor de 200 pasos por revolucion tiene 50 pares de polos, un "full step" te llevaria de un polo al otro, o sea, una revolucion electrica (360 grados), el motor tiene 200 pasos porque toma una secuencia de 4 pasos para ir de un polo al otro, es decir, un "full Step" necesita 4 pasos (90 grados por paso).
Cuando tu aplicas "micro-step" lo unico que haces diferente es regular la corriente que circula por los enrollados de forma de obtener una forma sinusoidal en lugar de los pulsos cuadrados de corriente que generaria la secuencia normal. (en realidad no son completamente cuadrados porque la corriente en la inductancia del enrollado sube linealmente con el tiempo)
Es decir, la secuencia de conmutacion de corriente por los enrollados es exactamente la misma que en "Full step" pero la corriente es limitada siguiendo una aproximacion sinusoidal. Cada microstep produce solo un cambio de la corriente y no una conmutacion de enrollados, la conmutacion se realiza solo en los cruces por cero de la sinusoide.
Siguiendo este razonamiento: 1/5 microstep daria 5 microsteps por cada paso, o 20 microsteps por cada Full Step (=5 x 4) 50 full steps x 20 microsteps = 1000 micro-steps por revolucion del rotor.
En mi caso, yo solo cambio la forma de onda de corriente pero la secuencia de pulsos sigue siendo la misma. El cambio se realiza en los cruces por cero de la fase A y el micro-controlador sigue contando la cantidad de microsteps necesarios antes de incrementar o decrementar la secuencia de conmutacion de los enrollados.
Por ejemplo: yo parto de cero y voy a usar 1/10 microstep comienzo a contar hacia delante y el primer cambio de enrollado (conmutacion de los mosfets) se realiza en el decimo conteo. Ahora continuo contando pero en el quinceavo micro paso decido cambiar la direccion, entonces cuento hacia atras (14, 13, 12...) y cuando llego al decimo vuelvo a la secuencia que tenia anteriormente.
Durante ese tiempo en cada paso yo regulo la corriente a un valor diferente siguiendo una tabla de valores sinusoidales (90 grados /10 microstep = 9 grados por microstep, entonces mi tabla consiste en los valores: Seno(0), Seno(9), Seno(18), etc. En la otra fase los valores para cada paso serian: Coseno(0), Coseno(9), Coseno(18), etc.
Esos valores me producen un voltaje de referencia que cambia sinusoidalmente con cada paso. Al ir hacia atras solo cambio el valor de corriente por el valor anterior en lugar del siguiente en la secuencia, por lo que efectivamente no existe un cambio brusco de torque al invertir el giro (el torque es proporcional a la corriente)
Hace un tiempo publique en este "thread" una tabla con los graficos correspondientes para todos los valores de microstep hasta 1/16 incluyendo 1/5 y 1/10. y los valores de referencia correspondientes.
En cuanto al cambio de forma de onda solo es un cambio de tabla con diferentes valores de referencia para cada paso.
Ahora bien, no se por que, en tu caso, tu motor dio una vuelta completa con 500 pulsos a 1/5 microstep. Solo debio haber dado media vuelta.
Me parece un poco extensa la respuesta y no se si quedo claro el concepto sin la ayuda de los graficos.