I don't think there's a good solution to this annoying problem.
The issue is that the date labels in the filter are just formatting and do not affect the underlying resolution of the filter. As you found, Aug 2015 could be Aug 1, 5, 15, 25, ...
If your filter is single-sided (for example, all dates after Aug 2015), you could change your date to be the last day of the month.
For a two sided range filter, I'd either:
1) show month/day/year in the filter labels.
2) use two discrete month/year filters for start and end date.
3) use a custom text field and parse this field for start and end.
(3) is not for the faint of heart as it requires regex parsing an arbitrary string field for start and end dates. However, it does work well when the worksheet is very slow to load because you can change both the start and end dates simultaneously.