Along with the other good, practical advice you have received, you could also put a mixing valve at the water heater output side to set a 'constant' [and usable at the tap] temperature coming from the water heater.
e.g., Our 11 gallon IsoTemp water heater is very well insulated, and approaches engine coolant
operating temperature after an hour of motoring. [~185°F] That is hot enough to cause injury. The mixing valve blends cold with the hot from the tank upon demand resulting in 120°F on the hot side. [You set the temp...]
Having a stable [and usable at the tap] hot water temp will also help reduce the fluctuations you are experiencing since less mixing will need to occur at the shower valve...
With this set-up we don't experience the fluctuations you describe, but we also have a variable speed water pump that delivers a reasonably constant pressure without using a pressure tank.
[Side note- check the pressure in your pressure tank; it should be 2PSI below the cut-on pressure of your water pump, otherwise it may be exacerbating your problem. This is measured when the pressure tank is empty with the water pump off and pressure relieved in the plumbing
system (open the taps until no more water flows)...]
I also agree that a temperature regulating shower valve would be a great thing to install.
That, with a mixing valve at the hot water heater so you aren't piping superheated water [a temp you would never use...] through the plumbing
unnecessarily, seem like an ideal set-up.
Best wishes stabilizing your shower temp.