Why was the engine of the Ju-87 Stuka not replaced with a more powerful one?
The Ju-87 Stuka did undergo engine change during its life. 

The initial Ju-87A version used the Junkers Jumo 210 A engine, which produced 602 hp. This was almost immediately replaced with Jumo 210D, which produced around 661 hp.

The first production version, the Junkers Ju-87 B-1 used a Junkers Jumo 211D generating 1,184 hp. Note this version had the fuselage and landing gear redesigned from 87A.

The next major version, the Ju-87D, used a Jumo 211J delivering 1,401 hp, after briefly dabbling with Daimler-Benz DB 603 engines. 

The final operational version of Stuka, the Ju-87G, used the Jumo 211J engine. 

This is more or less the same path followed by other combat aircraft of the era. For example the Hawker Hurricane MkI used a Merlin III engine producing 1,310 hp, while the last major version, the MkIV used the Merlin 24 (or 27) engines, producing 1,620 hp.

However, the main thrust in engine change in Ju-87 was increasing the payload, rather than increased speed or maneuverability like the Hurricanes. For example, Bomb carrying ability was nearly quadrupled from 500 kg in the B-version to 1,800 kg (max load) in the D-version. 

Another reason was the aircraft design itself. It was designed to be a rigged dive bomber, and increase in speed would've done it no good (it is to be noted that the fixed landing gear added a lot of drag, though it was study enough to mount a cannon) and it had limited maneuverability at the best of times when loaded (though it had good turn performance at low altitudes). The airframe had reached its limit.

The only reason the Stuka served till the end of the war though its limitations had become apparent by the Battle of Britan was simply because no better replacements were avilable (though the process started in early 1940's), though the Focke Wulf 190 took over some of the duties of Ju-87.