Hola ric556... Bienvenido al tema CNC y al foro...
Como primera medida, te recomiendo leer detenidamente éste subforo desde el principio... obtendrás la mayoría de las respuestas y bastante información anexa.
Con respecto a lo que viste en el sitio que publicas, (si no me equivoco yo también lo nombro en uno de los primeros mensajes), verás que se trata de lo que llamamos "Control directo" donde la secuencia que efectúa el control de los motores se produce por soft.
la mayorís de éstos casos es facilitada por que se utilizan motores unipolares, ya que los motores bipolares necesitan un tipo de control mas complicado, que puedes ver en la misma página , el puente H.
Ahora, aquí solo se utiliza el ULN2003 (7 Darlington) que oficia de Driver o etapa de potencia... para controlar las bobinas de los motores. Muchas veces se utiliza el ULN2803 que tiene 8 transitores para controlar 2 motores con el mismo IC o se conectan de a dos líneas en paralelo para duplicar la corriente que pueden manejar y por lo tanto utilizar motores mas potentes (cada dárlington soporta unos 500mA). si se usan motores mas grandes, se utilizan otros componentes en la etapa de potencia , Darlington mas grandes, MOSFET, etc.
Hasta aquí todo bien, pero que sucede cuando necesitamos utilizar un soft comercial de CNC... éstos utilizan dos líneas del puerto paralelo por cada motor, una undica el sentido de giro - direccion - y la otra entrega pulsos, uno por casa paso, o fracción que avance el motor según del Driver utilizado.
Para hacer ésto pueden utilizarse drivers integrados, especialmente diseñados para tal función, que unidos a una etapa de potencia acorde al motor a utilizar hará todo el trabajo... e incluso permitirá utilizar motores bipolares con solo utilizar un IC de puente H adecuado.
El problema que intentamos resolver aquí, es como hace la persona que donde vive, no consigue alguno de éstos drivers... o que por su costo prefiere encontrar una alternativa.
Así que decidimos suplantar el Driver por uno embebido en un PIC, en principio con uno que encontramos en la web... pero el proyecto incluye la posibilidad de crear un código propio colocando un control de torque selección de paso o semipaso y demás aditamentos.
También se ha propuesto un driver para motores bipolares e incluso un feedback con encoders ópticos...
Además ésta es una página de PICs.. como cabe sino éste tema aquí si no le ponemos PICs?

Con respecto a evitar el FEM... no veo porqué te refieres a optoacopladores, si bien pueden utilizarse, no veo en el sitio que nombras ningún diagrama al respecto, ahí por lo que muestran, lo absorbe el zener de 12V colocado en la pata 9 (Vcc) porque con la misma fuente alimentamos el común de las bobinas, pero si mirás el datasheet del ULN2803 que adjunto (no tenía a mano el 2003) verás que cada línea tiene conectado un diodo para evitar el retorno de corriente inversa de las bobinas... o sea que el IC tiene su propia protección.
En drivers de potencia, dependiendo del componente que se utilice, debes poner un diodo en ésta misma configuración para evitar dicho retorno.
Cucaracha, por ejemplo utiliza unos MOSFET que traen integrada ésta protección previendo que serán utilizados con cargas inductivas.
Con respecto a los optoacopladores, se hace referencia a ellos para protejer el puerto paralelo en otra página del mismo sitio... yo utilizo un circuito con optoacopladores para protejer la totalidad del puerto paralelo de las sobrecargas, tanto en entradas (5) como salidas (12)... pero también se puede utilizar un puerto extra, que si le sucede algo, dolerá menos que el puerto on-board o el motherboard completo, fritos

.
Bueno... espero que la explicación no esté demasiado resumido, pero te propongo nuevamente que leas detenidamente el resto de los mensajes del foro, donde además tendrás varios links a sitios de consulta.