This will depend to some extent on what your software is capable of. (If you're not using a software programme, much of this will apply anyway).
Many software programmes allow you to record alternative names for an individual and link them to the relevant sources-- in an ideal world, you'd also be able to record the dates when that name was used, although I'm not aware of any package that lets you do this. This still leave you with a decision to make about what you choose as the "primary" name -- I tend to use the name that the individual used when they were able to make their own decisions.
So, for example, I have an ancestor who was named Stanley Reynolds Wright on his birth certificate, John Stanley Wright on his marriage certificate and Stanley Wright in later censuses and his children's birth certificates, and John William Wright at his widow's death. I use Stanley Wright as his primary name because it seems most likely that was the one he used for himself by choice, and have all the other names recorded as Alternative Names. Attached to the "primary" name is a note, explaining the sources and time periods for all the other names.
In the adoption scenario you mention, I would use their adopted name as their primary name (assuming they retained this by choice) but record their birth name as an alternate. (I use a package which allows me to link two sets of parents to one child, and shows the nature of the relationship, which does help in understanding what's going on).