Utilizando a biblioteca stepper.h

Preciso utilizar um motor de passo na configuração half step. Nesta configuração o motor possui 400 passos. A ideia é fazer com que ele faça pequenas pequenas pausas durante cada movimento. Estou utilizando a biblioteca stepper.h e queria saber se é uma maneira correta de configurar desta maneira:

#include <Stepper.h>

int x = 1;
int z = 0;
int w = -1;

const int stepsPerRevolution = 400;
Stepper myStepper(stepsPerRevolution, 8,9,10,11);
int stepCount = 0;

void setup() {
myStepper.setSpeed(60);
}

void loop() {
myStepper.step(x);
delay(2500);
x++;
if(x==stepsPerRevolution) z=1;

while(z){
myStepper.step(-w);
delay(2500);
w--;
if(w==-stepsPerRevolution) z=0 && x=1;
}
}
}

Ou seria melhor declarar stepsPerRevolution = 200 (número de passos em configuração full step) com x incrementando de 0.5 em 0.5. Também tenho duvidas em relação a função myStepper.step se está utilizada de forma correta.

Retira a função delay() do programa... isso é parte do problema.

bubulindo:
Retira a função delay() do programa... isso é parte do problema.

Estou utilizando a função pra dar aquelas pausas que mencionei a cada movimento, estaria errado?

Ola,
Pelo que andei analisando o Stepper.h não implementa o Half Step, ou seja, uma posição intermediária.
Para os não iniciados em motores de passo.
Há duas sequencias de acionamentos que fazem o motor dar o passo completo, o normal, onde duas bobinas são energizadas e o onda (wave) onde somente uma bobina e energizados por vez (com menos torque). Cada um desses modos para o eixo em uma fração de ângulo diferente, entre um passo e outro do outro método.
Combinando os dois métodos de passo completo (full step) temos o dobro de passos, cada um desses passos sendo metade do passo completo, ou meio passo (Half Step).
O Half Step costuma ser usando em situações onde o torque não e importante.