Create AJAX multi step form which changes based on user input
You need to keep track of the step you're in. The first time a user hit's the form you would initialize a variable, say $stepand give it the value 1. On submit you augment that value to be in step 2 on the form rebuild. In the form builder itself (_vista_form()) you add form items depending on the current step. The same goes for validation and submit handlers. Usually you would use switch statements.

Have a look at this very complete tutorial: http://www.jaypan.com/tutorial/drupal-7-ajax-driven-multi-step-forms-non-javascript-fallback