Controlo de Motor Passo a Passo com sensor E18-D80NK

Boas,

Estou a trabalhar num projeto escolar, e pretendo que o meu motor, rode, simulando a abertura de um portão, e que depois feche. Somente poderia iniciar a abertura depois de receber sinal do sensor detetar.
Neste código, o motor inicia quando o sensor deteta, mas depois não gira para o lado contrário, e estou com problemas nisto.

#include <Stepper.h> // Incluindo a biblioteca do Motor de Passo
int pinosensor = 7; //Pino do Sensor
int leitura = 0;  //Armazena o valor lido
int leitura_anterior = 0;
int passos = 1000;
const int stepsPerRevolution = 65; // Numero de passo por volta

Stepper myStepper(stepsPerRevolution, 8,9,10,11); // Faz a inicialização da Biblioteca usando as portas 8,9,10,11
// setup (executado apenas uma vez)


void setup() {
       pinMode(pinosensor, INPUT);
       myStepper.setSpeed(310); // velocidade do motor definida em 300
}

void loop()
{
 //Gira o motor no sentido horario
 leitura = digitalRead(pinosensor);

 if (leitura == 0 && leitura != leitura_anterior)
 {
   myStepper.step(passos);   
 }

 if (leitura != 1000 && leitura != leitura_anterior)
 {
   myStepper.step(-passos);   
 }

 leitura_anterior = leitura;
}

Precisa de um comando para girar no sentido contrario.