Hi, Rotem,
It is okay to use a brushed DC motor as a server, you only list the power of the motor and closed loop based on encoder sensor. I suppose that you hope to spin the motor in two directions.
If you spin the motor in two direction, you have to use a H bridge, so you needs 4 PWM signals(at least 2 PWM signals), you have to decode the encoder signals so that you can detect the position and speed. If you want to run the motor in very low speed and hope to get precious speed, the capture function is needed. you control a brushed Dc motor, it does not need complicated algorithms. I suppose you need speed loop as inner loop and position loop as outer loop.
You need at least three FTM modules, one is used to generate PWM signals to control motor, another is used to to decode the encoder signals, the other is used in very low speed based on capture function(this FTM is not required if you do not run the motor in very low speed). PIT, ADC are also required.
I suggest you use Kinetis KV family, any processor in KV family can meet your requirement, because each processor has at least 3 FTMs, , furthermore, some processor in KV family has Quad Decoder module, it is okay to decode the Encoder signals.
This is KV website:
Kinetis V|Cortex-M0+/M4/M7|Real-time Control MCUs|NXP
Hope it can help you.
BR
Xiangjun Rong