When a context switch occurs, the kernel brings in a new process and "kicks out" old the process. But when an old process gets its turn to occupy the CPU, its previous state (the state when it was "kicked out") must be restored to start execution from the point where it left off.
All architectures have a limited number of registers. The registers are also included in the state of a process to be stored for eviction. Saving registers on the stack is for efficiency's sake, so you just need to pop the values back in.
Furthermore, each process has its own Process Control Block (PCB) to store such values on a context switch so that the scheduling algorithm is not hindered and works on some simple process ID. When a process acquires the CPU, the PCB, attached with that ID, is restored.
Edit
In my knowledge there is no CPU stack in x86. CPU has stack pointer to point to first element of the stack.