Análise de código com motor de passo, estou tentando entender o Arduino.

edir:
O problema é exatamente este, até li o script da biblioteca Stepper para entender o que ela fazia. O arduino fica ocupado com o programa enquanto o motor esta executando seus passos, isso impede que eu leia o Serial para executar alguma outra ação solicitada pelo aplicativo como a de parar o motor.

O programa até funcionou quando usei apenas o script do portão, mesmo assim a lógica realmente esta errada por conta deste detalhe de funcionamento do motor de passos. Para que funcionasse corretamente, eu deveria ter alguma peça de hardware adicional que controlasse o motor e na programação eu apenas solicitaria a ligação ou desligamento do motor, deixando que o hardware cuidasse de controlar os passos do motor. Desta forma o programa ficaria livre para atender as solicitação de comandos via Serial.

Admitindo que é esse o problema, a porta série quando o stepper está em funcionamento, apenas fica ocupada quando envia dados de depuração. A depuração pode ser feita de outra forma, por exemplo com LEDs.
Por outro lado há várias bibliotecas para controlar steppers. Haverá algum que não bloqueie o programa?
Por outro lado ainda, a porta série pode funcionar através de interrupção (não sei se é este o caso) em que após a mensagem se colocada no buffer, não é necessário nenhum controlo do programa para que a mensagem seja enviada.
Há várias dúvidas que estão no ar. É necessário fazer testes para ver o que realmente se passa e como se pode corrigir.