io farei in questo modo:
in ogni pagina (step1.php, step2.php...), prima dell'html metti un codice php che controlla se il modulo è già stato inviato per quella pagina (magari con un campo hidden al quale dai un valore), nel quale caso controlli se i dati inseriti sono corretti solo allora reindirizzi a step2, altrimenti visualizzi il form che seguirà con la parte html.

nella pagina successiva, utilizzerai le variabili $_GET o $_POST e poi potresti usare anche una bella sessione con $_SESSION, in questo modo potrai avere tutte le variabili coi valori dell'utente disponibili per tutto il processo di registrazione, e alla fine inserirai queste sul db.