Accelstepper

switch (prova)
    {

        case 0:
            // qui il tuo codice quando state == 0
            prova = 1; // switch to state 1
            break;

        case 1:
            // qui il tuo codice quando state == 1
            prova = 2; // switch to state 2
            break;

        case 2:
            // qui il tuo codice quando state == 2
            prova = 3; // switch to state 3
            break;

        case 3:
            // qui il tuo codice quando state == 3
            serial.println("prova 3");
            prova = 0; // switch to state 0

            break;
    }

Ho già messo il naso su questa libreria in passato ma devo dire che non la so usare al momento.
Io posso scaricare questa:AccelStepper: AccelStepper library for Arduino

Lo switch è semplice da seguire ed è quello che fai tu con le if, ora che ho sostituto
la variabile state con prova dovrebbe essere più chiaro seguire il funzionamento.

Se ancora non è chiaro aiutati con stampando su serial monitor come ho fatto in case 3
Ciao.