Rigging a Wheel to Turn Corners: Drivers vs. Bones
Both approaches will not work when dealing with corners, they will only work in straight line. There is more about why that is here:

Making wheels spin as car moves

You need to either:


construct a path for the car (or for each wheel if you want to be precise) and drive the wheels with that
Use Animation Nodes addon, this lets you access animation F-curve data and compute the wheel rotations
Use rigid body physics to simulate the wheels and collision with ground, bake the simulation into keyframes
Create a PyDriver (a driver with added function through script that can access blender f-curve data) or a frame change handler. With both you can access animation to compute the path and drive the wheels correctly
Write a script for your rig that will add/update animation of the wheels to the f-curves, similar to a script that would snap FK and IK bones in a rig, but with different function
Write an own engine that will simulate the wheels collisions and add it through app-handler to execute on each update of the car rig