Am I on the right track with the 16F1704?
First I suggest to learn a bit about the PIC. (Blinking LEDs, IRQs, etc.)

Then you have to systemizing. Specify smaller tasks.


Button handling. (Poll or interrupt)
Creating the reference (or set-point) of the controller. The reference can be a variable in your code, which time function have to describe the accelerating. I mean, when you want to accelerate, this variable should increment time by time. Use a timer interrupt.
Implement the PWM. You can test with an LED. The brightness depends on the PWM duty-cycle. (Note that the sense of seeing is logarithmic of the power.)
Design the power (switching) amplifier for the motor. The PIC can output some mA, while the motor (depends on the size) needs more than 1A. You need at least power FET(s).


Parts above can implement independently, arbitrary order. Verify all block separetly and then connect together. Then the system should work.