Precisamente el problema viene por ese lado.
Si el campo no es IDENTITY, hay que ver en base a qué genera, y qué causa el salto.
Si es un IDENTITY hay que tener en cuenta también lo que dice el manual de referencia:
Cita: La propiedad de identidad de una columna no garantiza lo siguiente:
Unicidad del valor: La unicidad debe aplicarse mediante una restricción PRIMARY KEY o UNIQUE, o mediante un índice UNIQUE.
Valores consecutivos en una transacción: No se garantiza que una transacción que inserta varias filas obtenga valores consecutivos para las filas porque podrían producirse otras inserciones simultáneas en la tabla. Si los valores deben ser consecutivos, la transacción debe usar un bloqueo exclusivo en la tabla o usar el nivel de aislamiento SERIALIZABLE.
Valores consecutivos después de un reinicio del servidor u otros errores: SQL Server podría almacenar en memoria caché los valores de identidad por motivos de rendimiento y algunos de los valores asignados podrían perderse durante un error de la base de datos o un reinicio del servidor. Esto puede tener como resultado espacios en el valor de identidad al insertarlo. Si los espacios no son aceptables, la aplicación debe usar un generador de secuencias son la opción NOCACHE o usar su propio mecanismo para generar los valores de clave.
Reutilización de valores: Para una propiedad de identidad determinada, con un valor de inicialización e incremento específico, el motor no reutiliza los valores de identidad. Si una instrucción de inserción concreta produce un error o si la instrucción de inserción se revierte, los valores de identidad utilizados se pierden y no volverán a generarse. Esto puede tener como resultado espacios cuando se generan los valores de identidad siguientes.
Esto quiere decir que hay situaciones en que la continuidad numérica puede ser afectada, sin ser necesariamente un "error".