Spectogram of a signal
You will need to understand what the spectogram function is doing in order to improve your results. 

As an starting point you first need to differentiate between smoothness and resolution.

The frequency resolution and the time resolution depends on the size of your FFT (An spectogram or STFT is the concatenation of multiples FFTs):

frequency_resolution = fs/L = 2004/L
time_resolution = L/fs = L/2004


This is called the time-Frequency compromise since the time and frequency resolution will be inversely proportional.

Now, from what you call "a smooth spectogram" I see your frequency range of interest goes from 0 to 100 Hz and you have said you will be looking at windows of 300 seconds, so for instance, a FFT size, L, of 2048 samples would give you a frequency resolution of 0.97 Hz and a time resolution of 1.02 seconds.

From here, you can apply 2 different methods to smooth your spectogram WITHOUT increasing neither your frequency nor time resolution, zero-padding (interpolation) and overlapping. 

As I was in a similar point some weeks ago I can recommend you the following free resources: 


The Scientist and Engineer's Guide to Digital Signal Processing
Audio Signal Processing course on Coursera
Spectrum and spectral density estimation by the Discrete Fourier
transform (DFT), including a comprehensive list of window
functions and some new flat-top windows