Because Crater Lake is in a very remote part of the state, there are few accommodations nearby. The closest actual town to Crater Lake is Prospect, which has a historical hotel (here’s a story about it from the Mail Tribune newspaper: http://www.mailtribune.com/apps/pbcs.dll/article?AID=/20050817/BIZ/308179989&cid=sitesearch).
Another 20 miles south on Highway 62 is the town of Shady Cove, which has an Edgewater Inn. Medford, which has numerous accommodations is still another 20 miles down the road. All of those towns are on “Crater Lake Highway,” making them the most convenient.
Staying in Ashland would require you to drive on Interstate 5 about 15 miles from Medford. The drive between Ashland and the national park takes about two hours.