adsense usually does a fantastic job of context matching.
I have found that it can give excessive weight to the wrong terms. In the OP's case a discussion about spark plugs could be swamped by ads for bath plugs. More importantly any mention of a major city is likely to have city based ads for anything from pest controllers to lap dancing clubs rather than car based ads.
If that doesn't work for you, you might take a look at any words or phrases that routinely appear on your pages, sort of boiler plate stuff.
Sometimes a single word can throw off targeting. For example, I had a situation where the word "agent" attracted job opportunity ads. I changed the word to "professional" and the problem was solved with no loss of meaning or understandability to the page.