Oh, you are building a brushed DC motor controller. It requires these basic parts:
* Two switches, one of which is a MOSFET and another can be a diode in this case,
* DC bus capacitance
* Somewhat well though out layout (i.e., the two previous bullet points forming a minimally small loop)
* Gate driver (possibly optional for small controller)
* Current sense circuit, typically consisting of a low-side shunt resistor and an amplifier IC
400W 12V motor controller is already something you won't do without a gate driver. Roughly, if 400W is nominal motor power at 12V, nominal current then is 33A. If you want any more than nominal torque, i.e., for example for startup, design for, say, 60A. Choose MOSFET based on thermal calculations, but to get you in the ballpark, this is a part nominally rated at some Id=100-150A, so I can already see why you are going to parallel multiple parts, it's a good idea.
If you don't want to blow up this one as well, you need a current sense circuit, and you can't afford losing some 1V (which would be tens of watts!) on low-side sense resistor, so you need a sense amplifier as well, so you are in the territory of adding external parts so why not add a gate driver as well.
For controlling a motor, anything in range of 2kHz - 30kHz is usually a good choice. Some 10kHz is often quite optimal compromise between ripple current amplitude and efficiency, but the audible whine might be an issue.
What I have personally done a few times, is put the sense resistor between the ground and the MOSFET Source. Amplify it with a current shunt amplifier IC, then bring it to the AVR's Analog Comparator pin. This way, you get software interrupt at the very instant the motor current exceeds the comparison level you set, allowing you to terminate the PWM cycle early and wait for the next cycle, giving you a peak current (torque) controller.