Where is data coming from a bus stored in a microcontroller?
At a very basic level incoming (or out-going for that matter) data is held in a set of latches. This may (or may not) be a "Register" in the view of programming the processor.  

And the data may or may not be held in a local cache, again depending the architecture of the processor. Tiny microcontrollers have very basic data handling paths, and high-end microprocessors have much more sophisticated data handling including perhaps megabytes of internal cache RAM.