How to it is only use of kalman filter with accelerometer and magnetometer ?(LSM303C)
The reason sensor fusion works so well for gyro and accelerometer is that while accelerometer provides absolute attitude value, the gyro provides rate of change of that value. So, accelerometer corrects the drift of the angle derived from gyro data, while gyro removes noise from accelerometer data.

In your case magnetometer and accelerometer basically provide two absolute attitude values in orthogonal planes (horizontal magnetic field and vertical gravity). You might be able to increase the precision of the magnetometer by using accelerometer data to compensate for sensor inclination, but you won't be able to eliminate drift or offset errors.

Your best option is to add gyro to the system and use Kalman filter on gyro and magnetometer data.