CNN implementation low accuracy on MINST data
Try by adding dropout to the network to avoid overfitting.
read the docs for more information
https://keras.io/layers/core/ 

and try these things as well

since the targets are integers,its better to use sparse_categorical_crossentropy than categorical_crossentropy and optimizer as Adam

model.compile(loss='sparse_categorical_crossentropy', optimizer=optimizers.Adam(lr=0.001), metrics=['accuracy'])


and try by using sigmoid activation function for output layer

model.add(Dense(10, activation='sigmoid'))