Ideally, you'd do some A/B testing with a couple different variants and use whichever works better for your test subjects.
That said:
1) If you have a widget that shows the number of steps in the process in an implicit fashion -- say, three dots superimposed on a line that are initially greyed out and get colored in as you proceed -- then you probably don't need to explicitly announce "Step 1 of X". But there's a caveat: sighted users can get by fine with the widget, but blind users need text that their screen readers can speak aloud for them. So, you could rely on the widget for sighted users, and use ARIA alerts for the blind. Or you could put the 1 of X text in visibly anyway -- unless you have a very busy design, it probably won't detract noticeably from the sighted user's experience. It really depends on your design, but whatever you do, do keep in mind people who can't see.
2) For myself, I'd show the final step rather than leaving it hidden. Even if it's just a confirmation that they've successfully signed up, it could feel a little deceptive to hide it and then they realize that they have to do one more thing (click the link). Let 'em know up front.
3) It's probably helpful to include textual labels identifying what kind of information the user is going to need in advance, so they can anticipate that as they work through the form. But "general information" is hopelessly vague. It could mean anything from "your social security number and mother's maiden name" to "the average GDP of Peru between 1992 and 2010" (which, by the way, was 4.95%). See if you can narrow that down to something concise but more meaningful.