About the only thing you can do to make your American English better would be to watch American shows. But really, there's not much difference between American English, and what the Brits, Canadians, and Aussies use, although there is the joke about how we're all separated by a common language.
The main differences are in spelling and pronunciation. Americans use 'color' and 'armor,' and the others add a 'u' for colour and armour, but they're pronounced the same. But then there's American "aluminum" and British "al-lou-min-ium." Also, Americans say, "Take me to the hospital," Brits, "Take me to hospital." There's also the American 'Z' "zee" to the other's "zed."
As for different areas of the US having different accents or dialects, oh, yes, there are many. The area around New York City has probably a dozen accents and dialects all by itself. And as for the rest of the country, it's the same, only over larger areas. Generally it's broken down into New England, Southern, Mid-West, West, and West-coast, but each of them have their own little variations within each area. Florida however, has some of everything, with the native Floridians having a Southern accent and speech, with northerners coming south for the winter or to retire. We all wound up with different accents and dialects due to the influence of various peoples from various other countries coming here and settling where they did. It's why those in Minnesota have a more Scandinavian flavor, those in Louisiana have more French, and those around New York have Italian and Irish.