Epsom is a town in Merrimack County, New Hampshire, United States. The population was 4,566 at the 2010 census.