Si quieres un control de lazo abierto solo necesitas un DAC0808 por ejemplo, conectas el dac al puerto paralelo, la salida del dac no te da la potencia necesaria para manejar el motor asi que necesitas hacer un amplificador tambien.
Si quieres un lazo cerrado, ademas del dac necesitas un adc y un tacometro o encoder para medir la velocidad del motor, ahi tienes que hacer un circuito con buffers para que las señales no se mezclen ya que deben ir conectadas a las mismas lineas del puerto paralelo.
En cuanto al programa, si utilizas c, ya vienen las funciones inport y outport para sacar y leer datos por el puerto paralelo, si utilizas otros lenguajes de programacion puedes bajar de internet las librerias para manejo del puerto (dll's) o ver si ya vienen implementadas.