Programacion de sensor optico y motores

Es un retraso para cada paso que da el motor

Esta bien pero lo que @ruilviana te pregunta es porque pones

delay(5);
delayMicroseconds(step_delay);

y no una sola instrucción?
delay() son 5 mseg
delayMicroseconds() es tu step_delay que segun tu código es de 3000 useg o sea 3 mseg
con poner

delay(8);

tienes el mismo efecto, es algo sutil pero tal vez simplemente se te pasó.

Si, tienes toda la razón es mucho mas optimo de la manera en que lo indicas.

Sin embargo el motor donde esta este condicional al inicio del void loop

me gira como la manecilla de un reloj cuando en la programación lo tengo para que me de giros de 90º ya que el motor es de 200 pasos por tanto 200/4 = 50 como se indica acá

Te agradecería mucho si me puedes ayudar con eso

No termino de entenderte, puedes filmar el problema y lo subes para comprenderlo mejor?

Link del video

Como muestra el video los pasos que da el motor son muy cortos cuando en la programación lo tengo para que de giros de 90º