This looks neat! I have some suggestions, but obviously feel free to ignore whatever.
This is a good idea. From what I've seen, people are usually using switching power supplies instead of linear for automotive purposes, so I just checked the Pro Micro schematics hoping to see one, but nope, it's linear too
In the possible event that transients fry your regulator or Arduino, it might be a good idea to put a 3-pin header footprint, with the input and output power, and ground going to it. That'll allow you to remove the (potentially dead) LM2940 and solder in a SMPS module instead of having to respin the board.
What op-amp are you using? The LM350 is a regulator, so there might be a mix up on your schematic. One thing to be wary of is that many op-amps are not "rail-to-rail". That is, you might power it using 0/8v, but the output might only go between 2-6v.
Edit: My bad, couldn't read LM358. Output range 0v - (8v - 1.5v), looks good.
Your transistor is flipped horizontally. Current goes into the drain, and out the source.
Looks like this optocouple is an open-drain, which means that it pulls the input voltage down to zero. Move the Arduino pin to pin 4, use a 1k or 1.2k or similar resistor to pull it high, and then ground pin 3. From the datasheet:
This will mean that it gives you an active-low signal, but that should be easy to fix in the code.
I'm not familiar with Kicad, are those white spots proper vias?
I'd also recommend a ground pour on the bottom layer, covering all of the parts that are not near the 12V - Basically the Arduino, half the optocouple, and the op-amp.
Also: mounting holes! I usually put at least three 3.4mm holes on the corners, sized for M3 screws.
Overall, looks really good! You covered most of your bases in regards to transients, and I know how overwhelming this can all seem.
The modularity is really good for risky environments where you might have to swap out components, or bodge on some more circuit protection.