Escaping special characters in custom submit handler redirect URL?
If you use an array as the value for $form_state['redirect'], it will eventually be passed to url(). So you can use the same options as for that function to build up a structured query string:

$path = 'node/' . $nid . '/edit';
$query = array('step' =&gt; 'step_2');
$form_state['redirect'] = array($path, array('query' =&gt; $query));


There's more explanation in the documentation for the drupal_redirect_form() function.