No filter is ideal, so your magnitude will always been affected somehow by the filter. A Butterworth filter will by definition attenuate your signal 3dB at its cut-off frequency but the attenuation becomes smaller the closer you get to 0 Hz (dc).
The passband attenuation (called ripple) depends on the filter type and order. If you want to minimize this ripple you can either increase the order of your Butterworth filter and move the cut-off to a higher frequency or consider, for example, an equi-ripple type filter (elliptic or equivalent). Does this answer your question or is your "changing magnitude" an other problem? If not ... please explain your problem more precisely.
