The answer to your question is a qualified yes.
First off, your final sentence about the evaluation of atoms is incorrect in that it suggests that the meaning of an atom depends on whether or not it has been bound; this is not correct. Numbers, strings, booleans, and quoted forms are values and evaluate to themselves. Identifiers are not values, and evaluate to whatever they're bound to (or, if you think about evaluation using substitution, they're already gone by the time you get to them).
Second, your description of an evaluator processing a list is... reasonable, up to a point. It's a plausible way to build a simple interpreter, and a plausible basis for an evaluation semantics, but if you take a look at the insides of any mainstream Scheme interpreter (including Racket), what you'll see is something that looks like any other language--that is, a syntactic layer parses the input, then compilation happens, then the resulting program is run. I don't want you to leave with the impression that a Scheme interpreter actually processes syntax as lists.
Sorry for all the nit-picking. Maybe we should just say "yes" and get on with our lives.