Amigo Diego, ya te comenté en el otro post que pusiste del PIC. Estás tratando un motor BLDC Brushless como si fuera un motor PaP y no lo son.... Un motor PaP está concebido para mantener la bobina "retenida" en una posición, un BLDC son solo tres bobinas en configuración como un motor trifásico miniatura.
Un BLDC no puedes "darle un pulso" o activar una bobina "sin más" como 101, se van modulando tres señales senoidales (o PWM) para ir llevando las bobinas de A --> B ---> C progresivamente en un movimiento más o menos contínuo de rotación. De hecho uno de los momentos más críticos es el comienzo de giro.
.............
Sobre lo que preguntas, en efecto como te han dicho, Mach3 no tiene gestión alguna para realimentarse y mucho menos para corregir nada aunque le facilitaras la imformación del pulso.
Eso lo puedes hacer en LinuxCNC, y nuevamente te insisto.... documentate sobre algoritmos PID

, lo que quieres hacer no se aborda de forma "digital", sino metiendo en una fórmula la posición teórica - real = error . Y con este error actuas corrigiendo la posición de motor.
..............
Entre la velocidad a la que gira el motor + los cálculos de posición, y que a LinuxCNC se lo debes informar cada 1ms.... un PIC16F84 no es capáz de efectuar estos cálculos con suficiente velocidad, necesitas un modelo superior 18Fxx o 32Fxx.
Salu2