Well, I wouldn't waste effort on a temporary table, it would be less work to use one table (or multiple, if you decide each "step" requires a different table.) In the table you have a field, call it "form_complete" or whatever that defaults to 0. When the form is finally completed, you can set it to 1. Better yet, you'd have the number increment for each step completed, so complete might be 4.
This kind of stuff is gold when it comes to figuring out where your process is breaking down or deep usability. You can query the tables for "step != 1" for abandoned submissions.