Usually, nobody does this. Simulating a whole circuit, including analog+microcontroller using just spice models would not make sense. It would be very slow and you would therefore not be able to simulate much.
There are tools that do it, but it is not using spice only. They break up the circuit in parts, simulate the analog part with spice and the digital part with other means. But they are usually expensive, and it is rarely actually needed.
What people do is to identify the various blocks in the circuit, and simulate each independantly, with the most appropriate tool:
- Typically, for an analog block with a few inputs from the microcontroller, you would use a spice tool, and simulate inputs coming from the MCU using simple voltage sources for which you assign the appropriate waveform (using pulse at predefined times, for example).
- To simulate the high-level MCU code, you can actually do it on a PC, if you use C. You need to emulate the peripherals you need, and compile for Windows/Linux. This can be time consuming for a complex app with lots of peripherals, but it gives you a lot of freedom during tests and is a good exercise to make platform-independant code.