It seems the protein of interest is of high molecular molecular weight, near impurities are difficult to remove but impurity profile is at the lower end , so you can use low molecular cut off weight filter to remove most of the low molecular weight impurities. and later if the impurities persist then can use either Size exclusion chromatography or gradient elution using same NI NTA column
As mentioned by Kandluri Geethika, size exclusion is a great way to improve purity.
Low purity may result from non-specific interactions of proteins or a contaminated column (assuming your protein is a monomer / homo-oligomer).
Adding imidazole to the lysate (5-10mM, prior to loading) can prevent non-specific interactions and improve purity.
Also, washing the column with the equilibrium buffer (containing 20-40mM imidazole, at least 10 column volumes, 20 recommended) after loading the lysate greatly improves purity.
If you already perform these steps, you may need to clean your column with the elution buffer or by stripping the Ni. The stripping protocol is usually available online.