Come ruotare un motore passo-passo ed eseguire altre azioni senza attendere che il motore finisca di ruotare?

Ciao a tutti.
Sto usando il motore 28BYJ-48 con il driver ULN2003A e la libreria Stepper. Considerando che se eseguo il metodo stepper.step(PASSI), ad esempio 2048 passi, le azioni successive nel codice non vengono eseguite finché il motore non finisce di dare i 2048 passi; ho provato ad ottenere tale risultato inserendo un passo e un delay in ogni ciclo della funzione loop fino a raggiungere i 2048, ad esempio:

void loop() {
  if ( PASSI < 2048 ) {
    stepper.step(1);
    delay(10);
    PASSI++;
  }
  // … altre azioni, come analogRead e digitalWrite sotto condizioni
}

ma funziona bene solo se Arduino (UNO) è collegato via USB al computer, se lo lascio solo con un alimentatore (12 V, 1 A) allora fa cose strane nelle azioni successive al stepper.step(); va fuori controllo, a volte parte bene ma dopo qualche secondo perde il controllo. Immagino che quest'ultimo problema abbia a che fare con la frequenza e la gestione degli impulsi.
Non so se è utile saperelo, le connessioni sono su una proto shield.
Per favore qualcuno può dirmi come posso raggiungere lo scopo di eseguire altre azioni mentre il motore passo-passo sta girando, senza causare problemi come quello che ho menzionato? Grazie in anticipo.

Buonasera,
in conformità al REGOLAMENTO della sezione Italiana del Forum, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa/simile domanda QUI ...

... poi, NON avendolo tu ancora fatto, ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO.

Infine, nel rispetto del su citato regolamento, questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato. Grazie.

Guglielmo