You can't hide ads; it's in the AdSense terms and conditions under "5. Prohibited Uses":
You shall not, and shall not authorize or encourage any third party
to: ... (ii) edit, modify, filter, truncate or change the order of the
information contained in any Ad, Link, Ad Unit, Search Result, or
Referral Button, or remove, obscure or minimize any Ad, Link, Ad Unit,
Search Result, or Referral Button in any way without authorization
from Google;
Seems pretty clear to me. (It's probably because the JavaScript code for the ad would still run, falsely reporting an ad view and stunting the click through rate.)
Moving the ad to the footer area for narrow screens using media queries might be safer.
Update (July 2013): Using JavaScript to detect page width and serve relevant ads, rather than CSS media queries to hide ads after the page has loaded and views have been counted, now seems to be the most sensible option, as in this example.