The way you describe it is one of the standard ways to implement an MPPT control.
A PWM controller is not an MPPT controller, it simply gives out a PWM modulated signal based on the reference you give it.
Although I think there could be some exotic MPPT controller ICs, somewhere, I think the solution using an MCU is the simplest and cheapest.
You can run a relatively slow MPPT algorithm on the MCU, then you have two alternatives: output the current reference to an external PWM current controller (something like UC2886) via filtered PWM or an external DAC, or take the current control inside the MCU, too. Implementing a good current control inside the MCU usually requires high processing speed, but you could accept a low bandwidth control and update the duty-cycle at each n PWM cycles, while using hardware current protection (comparator).